1. Field of the Invention
The present invention relates to a wireless communication device, a communication system, a communication control method, and a program, and for example relates to a wireless communication device, a communication system, a communication control method, and a program which perform processing for handling mis-ordering of received packets in conjunction with changing of communication paths or the like.
2. Description of the Related Art
As of recent, wireless networks conforming to wireless LAN standards, of which IEEE 802.00 is representative, are becoming widespread instead of cable networks, due to advantages such as the degree of freedom of devices being high, and so forth. As a result of the wide variety of applications which have come to use wireless networks, there is demand to raise the throughput of the overall system.
Wireless LAN standards (IEEE 802.11) stipulate ad-hoc communication where communication is performed directly between wireless communication devices, and infrastructure mode communication via an access point. Related art disclosing these communication processes include, for example Japanese Unexamined Patent Application Publication No. 2005-117458.
With a communication system defined by the infrastructure mode according to 802.11 shown in FIG. 1, a relay has to be made through an access point AP 30 to perform communication between wireless communication stations STA 10 and 20 at one point. That is to say, communication is performed via an AP-routed path 51, as shown in FIG. 1.
The infrastructure mode had led to lower throughput due to such relating processing. Accordingly, 802.11e has provided an arrangement for improving throughput in communication between wireless communication stations STA, by adding a direct communication mode between the wireless communication stations STA. As shown in FIG. 2, this is a mode for performing direct communication between wireless communication stations STA 10 and 20, and is communication using a directly link path 52 directly connecting the wireless communication stations STA 10 and 20.
Also, a new communication method, TDLS (Tunneled Direct Link Setup), is in the process of being defined of 802.11z, which is a new standard. This method sets direct communication links (directly links) between wireless terminals while maintaining the infrastructure mode, thereby enabling direct communication. Also, an arrangement is being proposed wherein, following setting of direct links, paths used for transmitting to a communication partner (via-access-point path and direct link path) are switched as appropriate.
However, permitting multiple data paths has led to occurrence of a problem wherein, upon dynamically switching paths during data packet transmission, the order of data packets which the MAC layer guarantees to the upper layer at the transmission destination is not maintained. This problem will be described with reference to FIG. 3.
We will assume that, as shown in FIG. 2, with a system configured of an access point AP 30, wireless communication device STA1 10, and wireless communication device STA2 20, data is transmitted from STA1 to STA2. At this time, we assume that both of the two communication paths of the AP-routed path 51, which is a path via the AP, and a direct link path 52, which is a direct communication (Direct Link) path between the STAs, are available for use.
Mis-ordering of packets occurring at the time of switching communication paths will be described with reference to FIG. 3. FIG. 3 illustrates, from the left, a wireless communication device STA1 which is a data transmission terminal, an access point AP serving as a communication relay device, and a wireless communication device STA2 which is a data reception terminal.
Note that the wireless communication device STA1 is illustrated with the upper layer such as applications performing generating and supply processing of communication data and so forth, and the MAC layer which receives the transmission data from the upper layer and performs transmission processing, shown separately. Also, the wireless communication device STA2 is shown with the upper layer and MAC layer separated. Regarding hardware, the upper layer is configured of a data processing unit and so forth, and the MAC layer is configured of a wireless interface unit and so forth. Note that in the following description, the wireless communication device STA1 will be abbreviated to “STA1”, the wireless communication device STA2 to “STA2”, and the access point AP to “AP”.
The steps of the sequence diagram in FIG. 3 will be described. In step S11, upper layer of the STA1 supplies communication packets 1 and 2 to the MAC layer serving as the wireless interface unit. In step S12, the MAC layer transmits the data packet 1 over the path via the AP (AP-routed path). Subsequently, in step S13, the packet 2 is transmitted using the inter-STA direct communication path (direct link path).
The STA2 at the data reception side receives the data packet 1 and the data packet 2. The packet 1 transmitted using the AP-routed path takes transfer time, since relay processing is performed at the AP. As a result, as shown in the drawing, the packet 2 which was transmitted using the inter-STA direct communication path (direct link path) is provided from the MAC layer of the STA2 to the upper layer of the STA2 in step S14 first. Subsequently, in step S16, processing is performed wherein the MAC layer of the STA2 provides the upper layer of the STA2 with the packet 1 received via the AP-routed path in step S15.
As a result, the upper layer of the STA2 receives the packets in the order of packet 2 and packet 1, thereby receiving the packets in an order different from the packet order transmitted from the STA1. Such packet mis-ordering is due to processing delay owing to relaying through the AP, or resending owing to poor communication environment between the AP and STA2.
The data packets 1 and 2 that are transmitted are assigned an ascending sequence number at the STA1 which is the data transmission side. However, at the time of the data packet 1 being subjected to relay processing at the AP, the AP rewrites the sequence number. This is because the sequence number defined by 802.11 is not assigned to End-to-End communication, but to Peer-to-Peer communication. As a result, the original data packet order may not be able to be determined STA2, by using either the arrival order of packets or the sequence number set to the packets. Consequently, the order of packets which the MAC layer provides to the upper layer is not guaranteed.
The example described with reference to FIG. 3 is an example under 802.11, but similar problems occur under data communication sequences following 802.11e as well. With 802.11e, processing is performed wherein sets of multiple data packets from the same transmission source are processed as blocks, with a BlockACK serving as a reception confirmation of a block, and further a re-order buffer executing processing for arraying the packets from the same transmission source in the order of sequence numbers, being used.
Mis-ordering of packets occurring at the time of switching communication paths in the case of performing communication following 802.11e will be described with reference to FIGS. 4 and 5. As with FIG. 3, FIGS. 4 and 5 illustrate, from the left, a wireless communication device STA1 which is a data transmission terminal, an access point AP serving as a communication relay device, and a wireless communication device STA2 which is a data reception terminal. Note that the wireless communication device STA1 and wireless communication device STA2 are shown with the upper layer and the MAC layer separated.
In step S21, the upper layer of the STA1 supplies communication packets 1 through 6 to the MAC layer serving as the wireless interface unit. In step S22, the MAC layer transmits the data packets 1 through 3 via the AP path (AP-routed path). Note that the address information set for the MAC headers of the transmission packets 1 through 3 is as follows.
Source address (SA) indicating the data source=1
Transmitter address (TA) indicating the data source in the case of direct communication=1
Receiver address (RA) indicating the data receiver in the case of direct communication=0
Destination address (DA) indicating the data destination=2
This address information is set to the MAC headers of the packets 1 through 3. Note that the sequence numbers (SN=1 through 3) set by the STA1 are also recorded in the header.
Note that, as shown in the drawings,
MAC address of STA1=1,
MAC address of AP=0,
MAC address of STA1=2,
and the address settings are settings corresponding to these MAC addresses.
Next, in step S23, the MAC layer of the STA1 uses the inter-STA direct communication path (direct link path) to transmit the packets 4 through 6. Note that the address information set to the MAC headers of the transmission packets 4 through 6 is as follows.
Source address (SA) indicating the data source=1
Transmitter address (TA) indicating the data source in the case of direct communication=1
Receiver address (RA) indicating the data receiver in the case of direct communication=2
Destination address (DA) indicating the data destination=2
This address information is set to the MAC headers of the packets 4 through 6. Note that the sequence numbers (SN=14 through 16) set by the STA1 are also recorded in the header.
The STA2 at the data reception side receives the packets 1 through 6. The packet 1 transmitted using the AP-routed path takes more transfer time, since relay processing is performed at the AP.
As a result, as shown in the drawing, the packets 4 through 6 transmitted using the inter-STA direct communication path (direct link path) are received at the MAC layer of the STA2 in step S24 first, and are stored in the re-order buffer. A re-order buffer is set for each direct transmitter of the packets, i.e., for each transmitter address (TA) in the MAC header of the packets. The packets 4 through 6 are stored in a reorder buffer corresponding to TA=1, since TA=1 holds for all of these, and the packet order is ordered following the sequence numbers (SN=14 through 16). In step S25, following confirming that the order of the packets is arrayed in the sequence number order, these are provided to the upper layer. The upper layer first receives the packets 4 through 6.
Subsequently, in step S31 shown in FIG. 5, the AP transmits the packets 1 through 3 to the MAC layer of the STA2, via AP-routed path. Note that the address information set to the MAC headers of the transmission packets 1 through 3 is as follows.
Source address (SA) indicating the data source=1
Transmitter address (TA) indicating the data source in the case of direct communication=0
Receiver address (RA) indicating the data receiver in the case of direct communication=2
Destination address (DA) indicating the data destination=2
This address information is set to the MAC headers of the packets 1 through 3. Note that the sequence numbers (SN=101 through 103) set by the AP are also recorded in the header.
These packets are stored in a re-order buffer by the MAC layer of the STA2 in step S32. As described above, a re-order buffer is set for each direct transmitter of the packets, i.e., for each transmitter address (TA) in the MAC header of the packets. The packets 1 through 3 are stored in a reorder buffer corresponding to TA=0, since TA=0 holds for all of these, and the packet order is ordered following the sequence numbers (SN=101 through 103). In step S33, following confirming that the order of the packets is arrayed in the sequence number order, these are provided to the upper layer. The upper layer receives the packets 1 through 3.
As a result, the upper layer of the STA2 receives the packets in the order of packets 4 through 6 and packets 1 through 3, so the packets are received in an order different from that transmitted from the STA1.
Thus, the re-order buffer defined by 802.11e does not function to array the order of packets from different TAs, though functions to array the order of packets transmitted from the same TA are had. As a result, as with the case of the sequence numbers described with reference to FIG. 3, advantages are manifested with Peer-to-Peer communication, but this does not function to guarantee the orderliness of a packet group transmitted over the AP-routed path (packets 1, 2, and 3) and a packet group arriving over the direct link path (packets 4, 5, and 6).
One way to solve this problem is to use a mesh sequence number newly defined in 802.11s (a draft 802.11 amendment). A mesh sequence number is set as an unchanged sequence number for End-to-End, which is the data source and data destination. The mesh sequence number is recorded in the header information of a data packet, along with the already-existing sequence number corresponding to the Peer-to-Peer.
FIG. 6 illustrates a header configuration example of a packet compliant with 802.11s. As shown in the drawing, in the header, a sequence number corresponding to Peer-to-Peer which already exists is recorded in the “Sequence Control” space, and further, an unchanged sequence number for End-to-End, which is the data source and data destination, is recorded in the “Mesh Sequence Number” space.
An example of a communication sequence in the case of switching communication paths in the case of performing communication will be described with reference to FIGS. 7 and 8. FIGS. 7 and 8 also illustrate, from the left, a wireless communication device STA1 which is a data transmission terminal, an access point AP serving as a communication relay device, and a wireless communication device STA2 which is a data reception terminal. Note that the wireless communication device STA1 and wireless communication device STA2 are shown with the upper layer and the MAC layer separated.
In step S51, the upper layer of the STA1 supplies communication packets 1 through 6 to the MAC layer serving as the wireless interface unit. In step S52, the MAC layer transmits the data packets 1 through 3 via the AP path (AP-routed path). Note that the address information set for the MAC headers of the transmission packets 1 through 3 is as follows.
Source address (SA) indicating the data source=1
Transmitter address (TA) indicating the data source in the case of direct communication=1
Receiver address (RA) indicating the data receiver in the case of direct communication=0
Destination address (DA) indicating the data destination=2
This address information is set to the MAC headers of the packets 1 through 3.
Note that the following information set by the STA1 is also recorded in the header.
Sequence numbers (SN=1 through 3)
Mesh sequence numbers (MSN=1 through 3)
Note that, as shown in the drawings,
MAC address of STA1=1,
MAC address of AP=0,
MAC address of STA1=2,
and the address settings are settings corresponding to these MAC addresses.
Next, in step S53, the MAC layer of the STA1 uses the inter-STA direct communication path (direct link path) to transmit the packets 4 through 6. Note that the address information set to the MAC headers of the transmission packets 4 through 6 is as follows.
Source address (SA) indicating the data source=1
Transmitter address (TA) indicating the data source in the case of direct communication=1
Receiver address (RA) indicating the data receiver in the case of direct communication=2
Destination address (DA) indicating the data destination=2
This address information is set to the MAC headers of the packets 4 through 6. Note that the following information set by the STA1 is also recorded in the header.
Sequence numbers (SN=14 through 16)
Mesh sequence numbers (MSN=4 through 6)
The STA2 at the data reception side receives the packets 1 through 6. The packet 1 transmitted using the AP-routed path takes more transfer time, since relay processing is performed at the AP.
As a result, as shown in the drawing, the packets 4 through 6 transmitted using the inter-STA direct communication path (direct link path) are received at the MAC layer of the STA2 in step S54 first, and are stored in the re-order buffer. A re-order buffer is set for each direct transmitter of the packets, i.e., for each transmitter address (TA) in the MAC header of the packets. The packets 4 through 6 are stored in a reorder buffer corresponding to TA=1, since TA=1 holds for all of the packets 4 through 6, and the packet order is ordered following the sequence numbers (SN=14 through 16). In step S55, confirmation is made that the order of the packets is arrayed in the sequence number order, following which in step S56, these are stored in a re-order buffer performing re-ordering processing in increments of End-to-End, which is the data source and data destination.
In step S57, the packet order is arrayed based on the mesh sequence numbers, in a re-order buffer which performs re-ordering processing in increments of data source (SA). In step S58, following confirmation that the order of the packets has been arrayed in mesh sequence number order, these are held in the buffer without change.
Subsequently, in step S61 shown in FIG. 8, the AP transmits the packets 1 through 3 to the MAC layer of the STA2, via AP-routed path. The address information set to the MAC headers of the transmission packets 1 through 3 is as follows.
Source address (SA) indicating the data source=1
Transmitter address (TA) indicating the data source in the case of direct communication=0
Receiver address (RA) indicating the data receiver in the case of direct communication=2
Destination address (DA) indicating the data destination=2
This address information is set to the MAC headers of the packets 1 through 3.
Note that the following information set by the AP
sequence numbers (SN=101 through 103)
and the following information set by the STA1
sequence numbers (SN=1 through 3)
are recorded in the header.
These packets are stored in step S62 by the MAC layer of the STA2, in a re-order buffer which is set for each transmitter address (TA). The packets 1 through 3 are stored in a reorder buffer corresponding to TA=0, since TA=0 AP holds for all of these, and the packet order is ordered following the sequence numbers (SN=101 through 103) given by the AP. In step S63, confirmation is made that the order of the packets is arrayed in the sequence number order, following which in step S64, these are stored in a re-order buffer performing re-ordering processing in increments of End-to-End, which is the data source and data destination.
In step S65, the packet order is arrayed in a re-order buffer which performs re-ordering processing in increments of data source (SA). The packets 4 through 6, already received, are already stored in this re-order buffer in accordance with the mesh sequence number. The packets 1 through 3 are further stored in this buffer, and the overall packets 1 through 6 are arrayed following the mesh sequence number. In step S66, following confirming that the order of the packets is arrayed in the mesh sequence number order, these are provided to the upper layer. The upper layer receives the packets 1 through 6 arrayed following the mesh sequence number.
As a result, the upper layer of the STA2 receives the packets in the order of packets 1 through 6, and accordingly receives the packets in the same order as the packet order transmitted by the STA1.
However, with this method, the mesh sequence number of the header has to be recorded. Also, a re-order buffer for arraying the packet order following the mesh sequence number has to be provided at the data reception side, and perform new processing. As a result, there are newly occurring problems of deterioration in throughput due to increased overhead in packet header information, and increase in the circuit scale at the reception side.